//package com.tal.bcc.pad.cloud.coreprogress;
//
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Looper;
//import android.os.Message;
//
//public abstract class ProgressUIListener extends ProgressListener {
//    private Handler mHandler;
//    private static final int WHAT_START = 1;
//    private static final int WHAT_UPDATE = 2;
//    private static final int WHAT_FINISH = 3;
//    private static final String CURRENT_BYTES = "numBytes";
//    private static final String TOTAL_BYTES = "totalBytes";
//    private static final String PERCENT = "percent";
//    private static final String SPEED = "speed";
//
//    public ProgressUIListener() {
//    }
//
//    private void ensureHandler() {
//        if (this.mHandler == null) {
//            Class var1 = ProgressUIListener.class;
//            synchronized(ProgressUIListener.class) {
//                if (this.mHandler == null) {
//                    this.mHandler = new Handler(Looper.getMainLooper()) {
//                        public void handleMessage(Message msg) {
//                            if (msg != null) {
//                                switch (msg.what) {
//                                    case 1:
//                                        Bundle startData = msg.getData();
//                                        if (startData == null) {
//                                            return;
//                                        }
//
//                                        ProgressUIListener.this.onUIProgressStart(startData.getLong("totalBytes"));
//                                        break;
//                                    case 2:
//                                        Bundle updateData = msg.getData();
//                                        if (updateData == null) {
//                                            return;
//                                        }
//
//                                        long numBytes = updateData.getLong("numBytes");
//                                        long totalBytes = updateData.getLong("totalBytes");
//                                        float percent = updateData.getFloat("percent");
//                                        float speed = updateData.getFloat("speed");
//                                        ProgressUIListener.this.onUIProgressChanged(numBytes, totalBytes, percent, speed);
//                                        break;
//                                    case 3:
//                                        ProgressUIListener.this.onUIProgressFinish();
//                                }
//
//                            }
//                        }
//                    };
//                }
//
//            }
//        }
//    }
//
//    public final void onProgressChanged(long numBytes, long totalBytes, float percent, float speed) {
//        if (Looper.myLooper() == Looper.getMainLooper()) {
//            this.onUIProgressChanged(numBytes, totalBytes, percent, speed);
//        } else {
//            this.ensureHandler();
//            Message message = this.mHandler.obtainMessage();
//            message.what = 2;
//            Bundle data = new Bundle();
//            data.putLong("numBytes", numBytes);
//            data.putLong("totalBytes", totalBytes);
//            data.putFloat("percent", percent);
//            data.putFloat("speed", speed);
//            message.setData(data);
//            this.mHandler.sendMessage(message);
//        }
//    }
//
//    public final void onProgressStart(long totalBytes) {
//        if (Looper.myLooper() == Looper.getMainLooper()) {
//            this.onUIProgressStart(totalBytes);
//        } else {
//            this.ensureHandler();
//            Message message = this.mHandler.obtainMessage();
//            message.what = 1;
//            Bundle data = new Bundle();
//            data.putLong("totalBytes", totalBytes);
//            message.setData(data);
//            this.mHandler.sendMessage(message);
//        }
//    }
//
//    public final void onProgressFinish() {
//        if (Looper.myLooper() == Looper.getMainLooper()) {
//            this.onUIProgressFinish();
//        } else {
//            this.ensureHandler();
//            Message message = this.mHandler.obtainMessage();
//            message.what = 3;
//            this.mHandler.sendMessage(message);
//        }
//    }
//
//    public abstract void onUIProgressChanged(long var1, long var3, float var5, float var6);
//
//    public void onUIProgressStart(long totalBytes) {
//    }
//
//    public void onUIProgressFinish() {
//    }
//}
